perm filename DISCUS.DOC[HAL,HE]2 blob sn#115327 filedate 1974-08-09 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		This short document lists the  currently outstanding problems
C00017 ENDMK
C⊗;
	This short document lists the  currently outstanding problems
associated with the  design of HAL.  As these are solved, 4R.DOC will
be changed to  reflect the solution,  and they  will be removed  from
this list.
	RCB is responsible for this file ... please feel free to add
items or comments to the list, but do not erase things.


	LANGUAGE FEATURES
	We need some "nice" way of describing common control flow
such as simple RETRY when something goes wrong and the operator
remedies the situation.  This emphasizes the need for clearly
understanding when ASSERTIONS are needed and what control flow is
possible (without JUMPS) to handle these situations.

	What about comments??? There seem to be a variety of ways
to provide comments which extend over ;'s, etc:
	(1) use {} or ⊂⊃ ... but trouble with paired moves
	(2) use COMMENT ⊗ _________
			  _________
			  _________⊗
	(3) let the user REQUIRE the macro delimiters, comment
	    delimiters ...

	There seems to be a general problem concerning the "generality"
of neat operators ... education about how to use them ... and clarity
of expression ... we definitely need to tutor each other and check
the XMPLES.DOC file ... the memo segments being written should be
tutorial in that they show what concepts are being used and essentially
how express them (for simple cases and more complicated cases)

	DEPROACH's ... automatic mass calculations or any other
"automatic" data base updating ... can the user set up ANTECEDENT
theorems ... consequent theorems???  ... demonstrate how property list
types of things can be done using assertions.

CONFUSION ABOUT ON MONITORS
	We say a block is done when no interpreters remain.  Question:
	ON COND1 DO
		BEGIN
		ON COND2 DO FOO;
		ON COND3 DO BAZ
		END
Do COND2 or COND3 stay around for any length of time?  This problem
really bugs me.  I want to say that COND2 and COND3 will go away
whenever COND1 was scheduled to go away, but how do you do that?
Do we really need to explicitly start an interpreter within the
conclusion of an ON, so that we can keep straight who is responsible
for which ON?  Like:
	ON COND1 DO
		BEGIN
		ON COND2 DO FOO;  COMMENT:  Done at on-level;
		ON COND3 DO 
			BEGIN
			START;  COMMENT:  Makes an interpreter;
			BAZ
			END
		END

	DATATYPES AND VARIABLES

	Need  syntax   for  graph   structure  manipulation   macros,
principally the vine-to-rake  transformation and deletion.  We should
also write down the algorithms needed.

	EXPANDER STUFF, WORLD MODELLING
	We need  a syntax  for  "let the  expander, in  his  infinite
wisdom, select a frame for me following  the constraints I have given
it". RCB: That sounds about right to me!!!

	Do  we want an ASSERT  ALWAYS construct to  make an assertion
valid for all world models during planning? RCB: Why?  save compiler
checking? save reassertions? or catching accidental changes to that
assertion?


	WRITING THE PAPER

	RCB: (NOTE that the papers for the 4th International AI Conf.
are due by October 1, 1974!!!  I think some portion of this should be
there.)

	The world is plastic; things flow a bit over time.
	The  language is to be accessible  to a technically competent
factory worker.

	DETAILS OF THE RUNTIME

	We  have not  worked  out the  syntax  for the  runtime  code
driving ON monitors.

	ODDS AND ENDS